package com.hjl.dao.provider;

import com.hjl.entity.Provider;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

public interface ProviderMapper {

    /**
     *  查询全部信息
     * @return
     */
    public List<Provider> getListInfo(@Param("proName")String proName);

    /**
     *  实现对供应商表的增加操作
     * @param provider
     * @return
     */
    public int addInfos(Provider provider);


    /**
     *  实现对供应商表的修改操作
     * @param provider
     * @return
     */
    public int updateInfos(Provider provider);


    /**
     *  实现对供应商表的删除操作
     * @param id
     * @return
     */
    public int deleteInfos(@Param("id") int id);

    /**
     *  根据指定的供应商 id 查询出其相关信息所有订单列表
     * @param id
     * @return
     */
    public List<Provider> getListInfosById(@Param("id")int id);


    /**
     *  使用动态SQL-if+where来改造供应商查询操作
     * @param proCode
     * @param proName
     * @return
     */
    public List<Provider> getProviderListInfo(@Param("proCode")String proCode,@Param("proName")String proName);


    /**
     *  使用动态 SQL-choose 查询供应商列表
     * @param proCode
     * @param proName
     * @param proContact
     * @param creationDate
     * @return
     */
    public List<Provider> getProviderListInfo2(@Param("proCode")String proCode,@Param("proName")String proName,
                                               @Param("proContact")String proContact,@Param("creationDate") Date creationDate);


    /**
     *  查询供应商列表分页信息
     * @param currentPageNo
     * @param pageSize
     * @return
     */
    public List<Provider> getProviderListInfo3(@Param("from")Integer currentPageNo,@Param("pageSize")Integer pageSize);


    /**
     *  在超市订单系统中实现对供应商的添加操作
     * @param provider
     * @return
     */
    public int add(Provider provider);


    /**
     *  实现根据供应商id修改供应商信息的操作
     * @param provider
     * @return
     */
    public int update(Provider provider);

    public int delete(@Param("id")Integer id);
}